C передача строки по ссылке на функцию - PullRequest
0 голосов
/ 07 сентября 2018
#include<stdio.h>

void fun1(int **iptr){
printf("%d ", **iptr); //shows value
}

void fun2(char **sptr){
//printf("%s", **sptr); shows segmentation fault 
printf("%s", *sptr);  //shows string
}

int main(){
char *str = "Hi";
int *x, a = 10;

x = &a;
fun1(&x);
fun2(&str);
return 0;
}

Кто-нибудь может вкратце объяснить, что происходит? может быть глупо, но я все равно спросил это ...

1 Ответ

0 голосов
/ 07 сентября 2018

При печати целого числа вы передаете само целое число в printf. При печати строки символов вы передаете адрес первого символа. Другими словами, вы передаете указатель на строку.

...