當前位置:首頁 » 編程語言 » c語言指針輸出值
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言指針輸出值

發布時間: 2022-08-21 01:45:21

1. c語言輸出指針的值.

把pAdd列印到字元串里。
盜用一些樓上代碼哈~
#include
<windows.h>
#include
<string.h>
void
main()
{
char
*pAdd;
char
str[20]
=
{0};
sprintf(str,
"%08x",
(long)
pAdd);
MessageBox(NULL,str,"My
程序",MB_OK);
}

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

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

}

3. C語言指針輸出

第一個函數在調用的時候 把main()中的兩個指向字元串的地址復制到形參裡面,你交換了形參的兩個地址,並沒有對地址指向的元素交換。這樣在子函數結束的時候,因為你只是把復制的兩個地址交換了,而真正main()中的 p、q 是沒有變的,所以跟沒調子函數一樣

而第二個是對地址指向的元素操作,不一樣的

4. c語言中指針的輸入輸出問題 求解答

第四行的指針變數P是不可以輸入的,是由系統分配的。而在第11行的指針就是P在和數組的指針比較,但我認為這樣寫不好,你可以定int變數來控制循環的次數,這樣就不用指針變數了。

5. c語言中如何讓指針數組中的值輸出

給你個代碼,希望可以有所啟示。
/*在數組中查找指定元素。輸入一個正整數n(n<=10),然後輸入n個整數存入數組a中,再輸入一個整數x,在數組a中查找x*/
#include<stdio.h>
void
main()
{
int
i,a[10],*p,x,n,flag=0;
p=a;
printf("請輸入數組元素的個數n,n<=10\n");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("請輸入第%d個元素\n",i+1);
scanf("%d",p+i);
}
printf("請輸入要查找的數字\n");
scanf("%d",&x);
for(i=0;i<n;i++)
if(*(p+i)==x)
{
printf("查找成功,下標為%d\n",i);
flag=1;
}
if(flag==0)
printf("Not
found!\n");
}

6. C語言 怎麼用指針輸出一個二維數組的全部值

C語言的數組(不管多少維)在內存中都是線性儲存的。所以用一級指針加偏移就可以訪問所有元素。

舉個例子,有一個10*10的二維數組a,這樣就可以輸出:

inta[10][10];

int*p=(int*)a;
inti;

for(i=0;i<10*10;i++)
printf("%d",*(p+i));

7. c語言指針的問題,想問下%d,%i,%p輸出的是什麼值,而且輸出的值代表什麼意思

%d 是輸出10進制整數
%i和%d用在輸出上的時候是一樣的
%p輸出指針 也就是地址值。

8. C語言指針輸出數據問題

這就是規則,格式符%s的含義就是:把對應的值看做一個地址,按位元組讀取,然後輸出讀取到的值所對應的ASCII碼,直到碰到0為止
p1是個地址,假設p1的值是1000(也就是數組a的起始地址),那麼從1000開始依次讀取到HIKARI\0 然後輸出
如果是*p1 那麼*p1是'H','H'的ASCII值是72, 那麼printf("%s",*p1); 就是從地址72開始讀取,也就是printf("%s",72); 而地址72是不允許用戶程序操作的,會出錯。
再舉個例子:
int a = 4407873;
printf("%s", &a);
會輸出ABC 因為變數a內存空間的值按位元組看就是'A','B','C','\0'

9. C語言關於指針變數輸出

p是指針,先指向數組a的首地址
p++表示先使用p,再執行p=p+1,這是一種簡單寫法
scanf(」%d「, p++ ); //先向p指向的地址中寫入一個整數,然後p指向下一個整數的地址。

10. C語言中變數指針輸出問題

假設字元串"this is a book"的地址分布如下:

值 地址
t 0030F8B0
h 0030F8B1
i 0030F8B2
... ...

此時有char *ps="this is a book"; 由於ps是char類型指針變數,它的指針域只能保存地址,我們知道"this is a book"是一個字元串數組且拿到了首元素的地址就可以找到它整個字元串,所以ps的指針域保存了首字元的地址即t的地址0030F8B0,而格式輸出符%s,就是輸出字元串之意,即從t開始輸出直至遇到\0符為止。

如果有printf("%c\n",*ps); 則取ps所指向的地址0030F8B0的值即字元t,換句說就是ps代表指針域即地址0030F8B0,再加上「*」就是取值的意思,合起來就是取地址0030F8B0的值即字元t.