当前位置:首页 » 编程语言 » c语言printf指针
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言printf指针

发布时间: 2022-11-30 06:20:19

c语言中如何借用指针输出字符串

使用指针输出字符串有以下几种方式:

1、使用printf 函数进行输出,其使用的格式转换符为%s,如

char*str="test";//指针指向一个字符串

printf("%s ",str);//输出str指向的字符串

2、使用puts函数进行输出,如

char*str="test";

puts(str);//输出str指向的字符串,会自动多输出一个换行

3、使用自定义函数进行输出,如

voidmyPuts(char*str)//自定义输出函数

{

if(!str)return;

while(*str!=''){

putchar(*str);

str++;

}

}

char*str="test";

myPuts(str);

(1)c语言printf指针扩展阅读:

C++指针与字符串

1、C语言里没有字符串数据类型,要想获得字符串的表示形式利用字符数组

#include<iostream>

using namespace std;

#include<stdlib.h>

void main()

{

char ar[]={'a','b','c','d'};

cout<<ar; //字符串后无结束符,会有多余打印

cout<<endl;

char br[]={'a','b','c','d',''};

cout<<br;

cout<<endl;

char cr[5]="abcd"; //字符串结尾默认隐藏了

cout<<cr;

system("PAUSE");

}

2、C语言里没有字符串数据类型,要想获得字符串的表示形式利用字符指针

#include<iostream>

using namespace std;

#include<stdlib.h>

void main()

{

char *p="hello world";

cout<<p;

//整形的指针,打印指针时只能打印其内部地址

//字符指针,打印指针时也是地址,但是这个被看作字符指针后,会打印该指针指向地址内存放的字符串,打印直到遇到为止

system("PAUSE");

}

3、静态常量区的字符串存储及指针访问

#include<iostream>

using namespace std;

#include<stdlib.h>

#include<string.h>

void main()

{

char *p="hello world"; //hello world存放在内存的静态常量区

//指针变量p存储的是该静态常量区的首个字符地址

//不能通过指针修改静态常量区的字符,但是可以通过指针访问

int length=strlen(p);

//strlen计算的是字符串p的有效长度,不算

for(int i=0;i<length;++i)

{

cout<<p[i];

}

system("PAUSE");

}

❷ C语言中printf中参数可以是指针

指针也是一种数据类型,只是他存储特殊的地址值。然而printf是可以输出所有数据类型的,比如,%c,%d,%f,%x
int dNun=1;
char cChar='a';
float fNum=0.0f;
int* p=&dNum;
printf(",%c,%d,%0.2f,%x",cChar,dNum,fNum,p);

❸ 关于C语言printf输出字符型指针变量的问题

%s指定了格式,函数用字符串指针的格式来理解str
如果只要输出地址值,用%d,是按照整型格式来理解str
多说一点,如果用%d来解析浮点类的,是得不到浮点值的,因为格式理解错误,并且不会去进行隐式类型转换,需要用%f,或者显示的进行转换.

❹ C语言 Printf一个指针(字符串)的问题

#include"stdafx.h"
#include<stdio.h>
typedefstructperson
{
char*Name;
}person;
personstu={"Admin"};

voidmain()
{
char*mName="Admin";
/*char*mName和stu.Name指向同一地址而这地址是系统临时分配的常量字符串首地址;而这临时分配的常量内存会随着生命周期释放掉
*/
printf("%s ",stu.Name);
printf("%s ",mName);
return;
}

❺ C语言 printf("%s",p)

char p 首先它是一个常量,如果是char p[10] = {};那么它就是一个变量。常量的值只可以读取不可以写入,变量的值可读可写。
在用printf语句打印%s的时候,printf语句要求提供字符串首地址。这是printf所规定的,也就是看到%s,printf就要求指针变量,而不是我们逻辑上认为的指针里面所存储的内容。所以用printf("%s",p);而不是printf("%s",
p); 这一点必须记住。如果用%c,想输出里面的内容就可以按照正常的指针概念,用*p了。可以执行一下这一条语句char * p = "string pointer dam fucking sucks!"; printf("%s %p %c ", p, p, *p);

你会发现c实际上没有string类型。那么c的%s怎么来的呢?用char数组代替。那么%s如何工作?它会从所给指针指向的位置开始,逐字符的打印输出,直到遇到“/n”或者“/0”。所以%s需要的只是一个指针值。(或者说数组第一个值的内存地址)读取了第一个值后,它会跳到后面的位置继续读取,这建立在你传给它的值是指针的前提上。如果你用了 ,结果只得到了第一个字符而没有指针( 表示取出指针所指位置保存的值),程序不知道后续字符的储存位置,它去哪里找?再说%d,%d只打印一个十进制数值,不需要后续继续打印,所以直接给它这个数值就行了。(*是什么意思不需要我再说一遍了吧?)

❻ c语言printf()输出指针

#include<stdio.h>

intmain()
{

char*p="123";
printf("%s",&*p);
printf(p);
return0;
}

%s输出时 要用&取变量地址,也就是printf("%s",地址);

而p指针代表的就是字符串"123"的地址值.

❼ C语言 指针 printf("%p\n",a)中%p什么意思

p表示指针,输出指针所指向的内容。还有很多的转换说明符,如下:转换说明符
%a(%A)
浮点数、十六进制数字和p-(P-)记数法(C99)
%c
字符
%d
有符号十进制整数
%f
浮点数(包括float和doulbe)
%e(%E)
浮点数指数输出[e-(E-)记数法]
%g(%G)
浮点数不显无意义的零"0"
%i
有符号十进制整数(与%d相同)
%u
无符号十进制整数
%o
八进制整数
e.g.
0123
%x(%X)
十六进制整数0f(0F)
e.g.
0x1234
%p
指针
%s
字符串
%%
"%"希望对你有所帮助。

❽ c语言请问这个指针printf输出的%XH是正确的吗 如果正确为什么xh 啥意思

是正确的。

%X表示以16进制字母大写(因为x是大写的)的形式输出指针的值,后面的H只是一个后缀,输出时会原样输出H,其作用是提示这是一个16进制数。

比如,如果指针的值是a1b2c3d4,则输出就是A1B2C3D4H。

❾ C语言中的printf是什么意思

printf()是C语言标准库函数,用于将格式化后的字符串输出到标准输出。标准输出,即标准输出文件,对应终端的屏幕。printf()申明于头文件stdio.h。

函数原型:

int printf ( const char * format, ... )。

返回值:

正确返回输出的字符总数,错误返回负值,与此同时,输入输出流错误标志将被置值,可由指示器ferror来检查输入输出流的错误标志。

(9)c语言printf指针扩展阅读

printf()函数的调用格式为:printf("格式化字符串",输出表列)。

格式化字符串包含三种对象,分别为:

(1)字符串常量;

(2)格式控制字符串;

(3)转义字符。

字符串常量原样输出,在显示中起提示作用。输出表列中给出了各个输出项,要求格式控制字符串和各输出项在数量和类型上应该一一对应。其中格式控制字符串是以%开头的字符串,在%后面跟有各种格式控制符,以说明输出数据的类型、宽度、精度等。

注:本文的所有示例代码均在Linux环境下以g++ 4.4.6编译成64位程序的执行。

❿ c语言 关于printf()和指针

p的类型是char *,这是printf要求字符串输出时提供的数据类型,即指针或地址,是字符串首字符地址
*p的类型是char,只是一个字符,而且是字符的内容(ASCII码),不是地址,与printf的%s要求提供的字符地址不符