c语言指针问题
下面有两段代码代码一:
#include <stdio.h>
int main(){
int a = 1;
int b = 2;
int c = 3;
int d = 4;
int e = 5;
int *p1 = {&a, &b, &c, &d, &e};
for (int i = 0; i < 5; i++){
printf("%d\n", *p1);
printf("address: %p\n", p1);
}
return 0;
}
代码二:
#include <stdio.h>
int main(){
char *p1 = {
"abc123",
"abcd1234",
"abcde12345",
"abcdef123456",
"abcdefg1234567"
};
for (int i = 0; i < 5; i++){
printf("%s\n", p1);
}
}
问题如下:
为什么第一段代码输出指针内容时需要星号*,而第二段代码不需要
据我所知带星号是表示指针对应的值,不带星号是指针对应的地址
P.s 结贴速度快,如果有用,必会最佳 C语言字符串打印,占位符%s需要你传一个地址
数值打印,占位符%d则是直接传一个值
页:
[1]