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

在c语言中打印指针所指向的元素

发布时间: 2022-06-08 12:24:54

A. c语言 如何输出指针所指向空间的大小

C语言无法输出指针所指向的空间的大小!
一般,我们获取一个变量所占内存空间的方法为:sizeof(变量名或类型名),如:
int a;
int aa[10];
int *p=aa;
printf("sizeof(int)=%d\n", sizeof(int) ); //现在的机器一般为32位或64位机,int类型占四个字节,所以输出4
printf("sizeof( a )=%d\n", sizeof(a) ); //输出4
printf("sizeof( aa )=%d\n", sizeof(aa) ); //输出4*10=40
printf("sizeof(p)=%d\n", sizeof(p) );//输出4 ?见下面说明
printf("sizeof(int *)=%d\n", sizeof(int *) );//输出4 ?见下面说明指针变量定义:用来存储内存地址的变量。指针变量中存储的是内存地址数据(一个整型数),而不是真正的数据,真正的数据是在地址中存放的。所以,指针变量实际上就是个整型变量,用sizeof命令去获取任意类型的指针变量都会得到4。
指针变量存储的是一个存储空间的首地址,究竟这个空间有多大,可以存储多少个数据,这是分配空间时所决定的。单独看一个地址值,是看不出其空间大小的。如:
int
a;
int
aa[10];
int
*p
;
//定义一个指针变量
p=aa
;
//指向数组aa,aa的数据空间是40字节,10个整数
p=&a;
//指向一个整型变量,它的存储空间是4字节,一个整数

B. c语言中如何让指针数组中的值输出

让指针指着数组中的每一个数地址
然后for循环一次往下指
其中printf为循环体。就
OK了

C. 求大神指教!!C语言用指向一维数组的指针变量,输入并输出该数组的所有元素值。

#include<stdio.h>
intmain()
{
intarray[10];
inti,*p;
for(p=array,i=0;i<10;i++)
scanf("%d",p+i);
for(p=array,i=0;i<10;i++)
printf("%d",*(p+i));
return0;
}

D. C语言中用指针变量指向数组元素

main()
{int
a[10];
//定义数组a为整型
int
*p=a,i;
//p指向a的地址,即a[0]的地址
for(i=0;i<10;i++)
scanf("%d",&a[i]);
//给数组a赋值
printf("\n");
for(p-a;p<(a+10);p++)
//输出数组元素
printf("%d",*p);
//p++表示p指向数组中下一个元素的地址
}
暂时先写这么多,你一开始没给p赋值是不对的~

E. C语言指针输出数组元素

根据题意可得代码:

#include<stdio.h>
intmain()
{
inta[10],*p=a;
inti;
printf("pleaseinputteninteger: ");
for(i=0;i<10;++i){
scanf("%d",p+i);
}
while(p<a+10){
printf("%d",*p);
p++;
}
printf(" ");
return0;
}

F. c语言关于打印指针所指的值的问题

只有一个问题,把printf("%s",*b);这一句中的“*”去掉,改成:
printf("%s",b);
就能打印“abc”了。
有什么问题请留言。

G. 写程序(C语言),使用指针实现打印一维数组所有元素的操作。

#include
void main()
{
int a[100],*p;
int n,t;/*你所要输入数字的个数*/
p=a;
printf("please input number n:");
scanf("%d",&n);
t=n;
while (n--)scanf("%d",p++);/*以此输入要输入的数字*/
p=p-t;
for(int i=0;i

H. c语言如何输出指针所指向的值

需要准备的材料分别有:电脑、C语言编译器。

1、首先,打开C语言编译器,新建一个初始.cpp文件,例如:test.cpp。

I. 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);

(9)在c语言中打印指针所指向的元素扩展阅读:

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");

}

J. C语言的小问题,用指针使数组中的元素循环打印出

因为你在判断p==(a+n)的if语句块中,没有加入break。

那么程序判断到第二次p==(a+n)后,就会执行其中的语句,然后继续执行其后的printf的语句。

直到这个打印结束了,才到循环的结尾,才开始判断t==2了,才结束循环。

话说你这样的循环风格很不好,需要改进。

明明用两个循环嵌套可以很好地解决问题,你却要把他们揉在一起。

for (t = 0; t != 2; t++)
{
for (p = a; p != a+n; p++)
printf("%d ", *p);
printf("\n");
}