自学内容网 自学内容网

C语言中printf(“%s“,参数)的参数是否加解引用符号*

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<string.h>
void main()
{
int n;
scanf("%d", &n);
char* p[] = { "january","february","march","april","may","june","july","august","august","september","october","november","december" };
printf("%s\n", *(p + n - 1));
printf("%s\n", p + n - 1);//1.错误写法

char* a = "turbo c";
printf("%s\n", a);

}

p为指针数组,p中的值为地址(指针),若要使用printf函数输出指针数组的值所指向的字符串,那么printf函数的参数应该为字符串首元素地址,那么我们就需要对指针数组的元素进行解引用操作得到指针数组的值(即字符串首元素的地址),因为字符串首元素的地址首先是以指针数组中元素的形式存在于指针数组中的。
而对于指针变量a,值即为字符串首元素地址,指针变量没有指针数组中的“元素”一说,故使用printf函数输出字符串时,参数为a,a不需要加解引用操作符。


原文地址:https://blog.csdn.net/weixin_52249641/article/details/140641605

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!