亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

請問關于c++ sizeof()函數的問題,求解答!

請問關于c++ sizeof()函數的問題,求解答!

C++
繁花不似錦 2021-10-21 15:15:24
如有 char *s="ab\0234\\\n79";執行 sizeof(s);結果是多少?在內存如何存放?請大哥大姐幫忙!
查看完整描述

3 回答

?
一只甜甜圈

TA貢獻1836條經驗 獲得超5個贊

首先 sizeof 不是函數 只是一個操作符.sizeof a因為a是數組名,當sizeof作用于一個class 、struct時,返回這些類型對象所占字節數,。當然 有這樣一種情況 int a[10] ; void fun(int *a){cout<<sizeof a;}。 fun(a) 出來結果是4 , 數組名作為函數參數時會退化為指針。

查看完整回答
反對 回復 2021-10-24
?
LEATH

TA貢獻1936條經驗 獲得超7個贊

首先聲明一下,sizeof在C++中不是函數,它也是一個操作系統,像new、delete一樣。
char *s是一個指針,所以sizeof(s) 的結果是s指針本身所占用的真實空間4個字節。
c++標準庫的<string.h>頭文件下,有一個strlen()函數是用來測定字符串的長度的。你可以試試,它測出的是s所指向的字符串的長度,不是s指針本身的長度。

查看完整回答
反對 回復 2021-10-24
?
開心每一天1111

TA貢獻1836條經驗 獲得超13個贊

先給你看一下轉義字符和它對應的意義:
轉義字符 轉義字符的意義
\n 回車換行
\t 橫向跳到下一制表位置
\b 退格
\r 回車
\f 走紙換頁
\\ 反斜線符"\"
\' 單引號符
\” 雙引號符
\a 鳴鈴
\ddd 1~3 位八進制數所代表的字符
\xhh 1~2 位十六進制數所代表的字符
s 在內存的存放:
a //存放a
b //存放b
\023 //存放八進制為 23 的數
4 //存放 4
\\ //存放反斜線符 \
\n //存放換行
7 //存放 7
9 //存放 9
sizeof(s) 是求指針s本身的大小,一般是4
strlen(s) 才是求s指向的字符串的長度,這里是8



查看完整回答
反對 回復 2021-10-24
  • 3 回答
  • 0 關注
  • 283 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號