|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
下面有两段代码
代码一:
- #include <stdio.h>
- int main(){
- int a = 1;
- int b = 2;
- int c = 3;
- int d = 4;
- int e = 5;
- int *p1[5] = {&a, &b, &c, &d, &e};
- for (int i = 0; i < 5; i++){
- printf("%d\n", *p1[i]);
- printf("address: %p\n", p1[i]);
- }
- return 0;
- }
复制代码
代码二:
- #include <stdio.h>
- int main(){
- char *p1[5] = {
- "abc123",
- "abcd1234",
- "abcde12345",
- "abcdef123456",
- "abcdefg1234567"
- };
- for (int i = 0; i < 5; i++){
- printf("%s\n", p1[i]);
- }
- }
复制代码
问题如下:
为什么第一段代码输出指针内容时需要星号*,而第二段代码不需要
据我所知带星号是表示指针对应的值,不带星号是指针对应的地址
P.s 结贴速度快,如果有用,必会最佳
C语言字符串打印,占位符%s需要你传一个地址
数值打印,占位符%d则是直接传一个值
|
|